﻿Imports System.Data
Imports CrystalDecisions.Shared
Imports System.Data.OleDb
Imports System
Imports System.Globalization

Partial Class Interfaz_ModuloPlanificacion_PopUpPlanificacion2
    Inherits System.Web.UI.Page

    Dim CL As Logica.ModuloPlanificacion.ControladorLogica
    Dim CLAdmin As Logica.ModuloAdministracion.ControladorLogica
    Dim dtDatosPlanificacion As New DataTable


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CL = Logica.ModuloPlanificacion.ControladorLogica.getInstance
        CLAdmin = Logica.ModuloAdministracion.ControladorLogica.getInstance

        dtDatosPlanificacion.Rows.Clear()
        If Not Page.IsPostBack Then
            Try

                dtDatosPlanificacion.Columns.Add(New DataColumn("MARCA"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("ID"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("DESCRIPCION"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("CANTIDAD"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("LARGO"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("ANCHO"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("OBSERVACION"))
                obtenerPlanificacion_M2()
                llenarDdlDescripcion()
                Me.LblInformacionDescrp.Text = DirectCast(CL.ObtenerBibliotecaTecnica(Me.DdlDescripcion.SelectedValue, 2).Item(0), Biblioteca_Tecnica).Descripcion
                Me.GridEditarPlanificacion2.DataBind()
                Me.GridEditarPlanificacion2.DataSource = Me.dtDatosPlanificacion
            Catch ex As Exception
                Throw ex
            End Try

            'prueba()
            LlenarCamposAnteriores()
        Else
        End If
        Me.GridEditarPlanificacion2.DataSource = dtDatosPlanificacion
    End Sub

#Region "Eventos"

    Protected Sub GridItems_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridEditarPlanificacion2.RowCommand
        Try
            Dim accion As String = e.CommandName.ToString
            Dim url As String = ""
            Dim index As String = CInt(e.CommandArgument)
            Dim subProy As String = Me.GridEditarPlanificacion2.Rows(index).Cells(1).Text

            If accion = "EditarPlanificacion" Then
                url = """PopUpPlanificacion3.aspx?Nplan3=" & subProy & """"
                FuncionAbrirVentana(url)
            End If
        Catch ex As Exception
            Me.Mensaje(ex.ToString)
        End Try
    End Sub

    Protected Sub DdlDescripcion_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlDescripcion.SelectedIndexChanged
        Me.LblInformacionDescrp.Text = DirectCast(CL.ObtenerBibliotecaTecnica(Me.DdlDescripcion.SelectedValue, 2).Item(0), Biblioteca_Tecnica).Descripcion
    End Sub

#End Region

#Region "Utilidades"

    Private Sub FuncionAbrirVentana(ByVal url As String)
        ClientScript.RegisterStartupScript(Me.GetType(), "AbrirVentana;", "window.open(" & url & ",'','width=651,height=700,menubar=1,resizable=1,scrollbars=1');", True)
    End Sub

    Public Sub Mensaje(ByVal msg As String)
        Dim alertScript As String = "<script language=JavaScript runat=server>"
        alertScript &= "alert('" & msg & "');"
        alertScript &= "</script>"
        ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScrip", alertScript)
    End Sub

    Public Sub LlenarCamposAnteriores()

        Dim array As ArrayList = CL.ObtenerPlanificacionM1(Request("Nplan2"), 2)
        Dim pm1 As Planificacion_M1 = DirectCast(array.Item(0), Planificacion_M1)
        Dim pm As Planificacion = DirectCast(CL.ObtenerPlanificacionPrincipal(pm1.Fk_planificacion, 2).Item(0), Planificacion)
        Dim presu As ArrayList = Me.CLAdmin.ObtenerPresupuestoCriterio(DirectCast(CL.ObtenerOT(pm.Ot_fk, 2).Item(0), OrdenTrabajo).FkPresupuesto)

        Me.LblNPlanificacion.Text = pm.Id
        Me.LblNOt.Text = pm.Ot_fk & " - " & DirectCast(presu.Item(0), Presupuesto).atencion

        Me.LblMarca.Text = pm1.marca
        Me.LblCantidad.Text = pm1.Cantidad
        Me.LblDescripcion.Text = pm1.Descripcion
        Me.LblKguni.Text = pm1.Kguni
        Me.LblObservacion.Text = pm1.Observacion
        Me.LblPlano.Text = pm1.Plano
        Me.LblPlaniId.Text = pm1.id

    End Sub

    Public Sub obtenerPlanificacion_M2()
        Me.dtDatosPlanificacion.Clear()
        Dim array As ArrayList = CL.ObtenerPlanificacionM2(Request("Nplan2"), 3)

        If array.Count > 0 Then

            For i As Integer = 0 To array.Count - 1
                Dim drDatos As DataRow = dtDatosPlanificacion.NewRow
                Dim pm2 As Planificacion_M2 = array.Item(i)

                drDatos.Item("MARCA") = pm2.marca
                drDatos.Item("ID") = pm2.id
                drDatos.Item("DESCRIPCION") = DirectCast(CL.ObtenerBibliotecaTecnica(pm2.Descripcion, 2).Item(0), Biblioteca_Tecnica).Nombre
                drDatos.Item("CANTIDAD") = pm2.Cantidad
                drDatos.Item("LARGO") = pm2.Largo
                drDatos.Item("ANCHO") = pm2.Ancho
                drDatos.Item("OBSERVACION") = pm2.Observacion


                dtDatosPlanificacion.Rows.Add(drDatos)

            Next
            Me.GridEditarPlanificacion2.DataSource = dtDatosPlanificacion
            Me.GridEditarPlanificacion2.DataBind()

            Me.LblMensaje.Text = ("Los Datos han Sido Cargados Exitosamente.")
            Me.LblMensaje.ForeColor = Drawing.Color.Blue
        Else
            Me.LblMensaje.Text = ("La Planificación No cuenta Con Marcas Creadas.")
            Me.LblMensaje.ForeColor = Drawing.Color.Red
        End If

    End Sub

    Public Sub LimpiarCampos()


        Me.TxtCantidad.Text = String.Empty
        Me.TxtLargo.Text = String.Empty
        Me.TxtmarcaFab.Text = String.Empty
        Me.TxtAncho.Text = String.Empty
        Me.TxtObservacion.Text = String.Empty

    End Sub

    Public Function ValidarIngreso() As Boolean
        If Me.TxtAncho.Text <> "" And Me.TxtCantidad.Text <> "" And Me.TxtLargo.Text <> "" And Me.TxtmarcaFab.Text <> "" And Me.TxtObservacion.Text <> "" Then
            Return True
        End If
        Return False
    End Function

    Public Sub llenarDdlDescripcion()

        Dim arr As ArrayList = CL.ObtenerBibliotecaTecnica("", 1)
        If arr.Count > 0 Then
            For i As Integer = 0 To arr.Count - 1
                Dim bt As Biblioteca_Tecnica = DirectCast(arr.Item(i), Biblioteca_Tecnica)
                Dim it As ListItem = New ListItem(bt.Nombre, bt.Id)

                Me.DdlDescripcion.Items.Add(it)
            Next

        End If
    End Sub

    

#End Region

#Region "Insertar"
    Public Sub ingresarPm2()
        If Me.ValidarIngreso Then
            Dim pm2 As Planificacion_M2 = New Planificacion_M2(Me.TxtmarcaFab.Text, Me.DdlDescripcion.SelectedValue, CInt(Me.TxtCantidad.Text), CInt(Me.TxtLargo.Text), CInt(Me.TxtAncho.Text), Me.TxtObservacion.Text, CInt(Me.LblPlaniId.Text))
            CL.ingresarPlanificacionM2(pm2)
            Me.LblMensaje.Text = "Los Datos Han Sido Ingresados Exitosamente"
            Me.LblMensaje.ForeColor = Drawing.Color.Blue
            LimpiarCampos()
        Else
            Me.LblMensaje.Text = "Para Ingresar Necesita Completar Todos los Datos"
            Me.LblMensaje.ForeColor = Drawing.Color.Red
        End If
    End Sub
#End Region

#Region "Botones"

    Protected Sub BtnIngresar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnIngresar.Click

        ingresarPm2()
        Me.dtDatosPlanificacion.Clear()
        Me.GridEditarPlanificacion2.DataSource = Me.dtDatosPlanificacion
        dtDatosPlanificacion.Columns.Add(New DataColumn("MARCA"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("ID"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("DESCRIPCION"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("CANTIDAD"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("LARGO"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("ANCHO"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("OBSERVACION"))
        obtenerPlanificacion_M2()
    End Sub

#End Region

   
    Protected Sub Image1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Image1.Click
        Dim url As String = """PopUpIngresoBT.aspx"""
        ClientScript.RegisterStartupScript(Me.GetType(), "AbrirVentana;", "window.open(" & url & ",'','width=100,height=300,menubar=1,resizable=1,scrollbars=0');", True)
    End Sub
  
End Class
